The generator matrix

 1  0  0  1  1  1  X  1  1  X  1  0  0  1  1  1  0  1  1  0  1  1  0  0  1  1  0  0  X  X  X  X  0  X  X  0  1  1  1  0  1  X  1  1  0  1  1  X  X  X  0  1  1  1  X  1  1  0  1
 0  1  0  0  1 X+1  1  0  1  1 X+1  1  0  0  X X+1  1  X X+1  1  X  1  1  X  X  1  1  X  1  1  1  1  1  1  1  1  0  0 X+1  1 X+1  1  X  1  1  X  1  1  0  0  X  X  0  X  1  1  1  1  X
 0  0  1  1  1  0  1  X X+1 X+1  X  X  1 X+1  X X+1 X+1  0  1  1  1  X  0  1 X+1  0  X  1  1 X+1  1  1 X+1 X+1 X+1  1  0  0  0  X  0  X  0  0  X  0  0  X  X  X  X  1  1  1  X X+1  1  X X+1
 0  0  0  X  0  0  0  0  0  0  0  0  0  X  X  X  X  X  X  X  0  X  X  X  0  X  X  X  0  0  X  X  0  X  X  0  0  X  0  X  X  0  X  X  0  0  0  X  X  0  0  0  0  X  0  X  0  X  0
 0  0  0  0  X  X  0  X  0  X  0  X  X  X  X  0  0  0  X  X  0  0  0  0  X  X  X  X  X  0  X  0  X  0  X  0  X  X  0  0  0  0  X  0  0  X  0  0  X  X  X  X  0  X  X  X  0  0  X

generates a code of length 59 over Z2[X]/(X^2) who�s minimum homogenous weight is 56.

Homogenous weight enumerator: w(x)=1x^0+122x^56+98x^60+17x^64+2x^68+12x^72+4x^76

The gray image is a linear code over GF(2) with n=118, k=8 and d=56.
As d=56 is an upper bound for linear (118,8,2)-codes, this code is optimal over Z2[X]/(X^2) for dimension 8.
This code was found by Heurico 1.16 in 0.0374 seconds.